/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package py.una.pol.ii.is2.dao.flota;

import java.util.List;
import py.una.pol.ii.is2.domain.flota.Insumo;

/**
 *
 * @author markos
 */
public interface InsumoDAO {
/**
     * Permite la inserción de un objeto de tipo Insumo
     * @param insumo Elemento a insertar
     * @return true si la operación tuvo éxito, en otro caso false
     * @throws java.lang.Exception
     */
    public boolean insert(Insumo insumo) throws Exception;
    /**
     * Permite la actualización de un objeto de tipo Insumo
     * @param insumo Elemento a editar
     * @return true si la operación tuvo éxito, en otro caso false
     * @throws java.lang.Exception
     */
    public boolean update(Insumo insumo) throws Exception;
    /**
     * Permite la eliminación de un objeto de tipo Insumo
     * @param insumo Elemento a eliminar
     * @return true si la operación tuvo éxito, en otro caso false
     * @throws java.lang.Exception
     */
    public boolean delete(Insumo insumo) throws Exception;
    /**
     * Busca un registro de la tabla insumo por el código de la misma
     * @param codInsumo Código de la insumo a buscar
     * @return Insumo encontrado, en otro caso null
     * @throws java.lang.Exception
     */
    public Insumo find(Integer codInsumo) throws Exception;
    /**
     * Permite recuperar una lista de entidades ordenadas por la clave primaria.
     * La lista obedece a una restricción que recibe como parámetro pudiendo éste ser null.
     *
     * @param condicion Restricción de búsqueda
     * @return Lista de entidades, en otro caso null.
     * @throws java.lang.Exception
     */
    public List<Insumo> getListaInsumos(String condicion) throws Exception;
}
